#include <stdio.h>
#define SIZE 100

void swap(int *a,int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

void keep_heap_up(int *arr,int n,int j)
{
	int temp;
	if(arr[j] > arr[(j - 1) / 2])
	{
		swap(&arr[j], &arr[(j - 1) / 2]);
		if((j - 1) / 2 > 0)
		{
			keep_heap_up(arr, n, (j - 1) / 2);
		}
	}
}

void heap_sort(int *arr,int n)
{
	int i,j;
	for(i = n - 1;i > 0;i--)
	{
		keep_heap_up(arr, n, i);
	}
	for(i = n - 1;i > 0;i--) 
	{
		swap(&arr[0], &arr[i]);
		for(j = i - 1;j > 0;j--)
		{
			keep_heap_up(arr, i, j);
		}
	}
}

int main()
{
	int arr[SIZE];
	for(int i = 0;i < SIZE;i++)
	{
		scanf("%d",&arr[i]);
	}
	heap_sort(arr,SIZE);
	for(int i = 0;i < SIZE;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	return 0;
}
